- Input a character.
MOV AH, 01h
INT 21h
After the interrupt, AL contains the ASCII code of the input character.
The character is echoed (displayed on the screen). Use function code 8 instead
of 1 for no echo.
- Input a string.
SECTION .data
Buffer DB BUFSIZE ;BUFSIZE is max number of chars to read, <= 255
RESB BUFSIZE + 1
SECTION .text
MOV DX, Buffer
MOV AH, 0Ah
INT 21h
After the interrupt, BYTE [Buffer + 1] will contain the number
of characters read, and the characters themselves will start at Buffer +
2. The characters will be terminated by a carriage return (ASCII code
13), although this will not be included in the count.
- Output a character.
MOV DL, ...
MOV AH, 02h
INT 21h
Load the desired character into DL, then call the interrupt with
function code 2 in AH.
- Output a string.
MOV DX, ...
MOV AH, 09h
INT 21h
Load the address of a '$'-terminated string into DX, then call the
interrupt with function code 9 in AH.
- Exit.
MOV AL, ...
MOV AH, 4Ch
INT 21h
Load the return code (0 for normal exit, non-zero for error) into AL,
then call the interrupt with function code 4Ch in AH. This is the
proper DOS exit routine; however, if you are running your program with DEBUG,
this will exit DEBUG. An alternative is to go behind DOS's back and use the
BIOS routine accessed by INT 20h, which will return control to the
DEBUG prompt when executed.